home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / bits / link.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-11-14  |  1.8 KB  |  61 lines

  1. /* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef    _LINK_H
  20. # error "Never include <bits/link.h> directly; use <link.h> instead."
  21. #endif
  22.  
  23.  
  24. /* Registers for entry into PLT on IA-32.  */
  25. typedef struct La_i86_regs
  26. {
  27.   uint32_t lr_edx;
  28.   uint32_t lr_ecx;
  29.   uint32_t lr_eax;
  30.   uint32_t lr_ebp;
  31.   uint32_t lr_esp;
  32. } La_i86_regs;
  33.  
  34. /* Return values for calls from PLT on IA-32.  */
  35. typedef struct La_i86_retval
  36. {
  37.   uint32_t lrv_eax;
  38.   uint32_t lrv_edx;
  39.   long double lrv_st0;
  40.   long double lrv_st1;
  41. } La_i86_retval;
  42.  
  43.  
  44. __BEGIN_DECLS
  45.  
  46. extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
  47.                        uintptr_t *__refcook,
  48.                        uintptr_t *__defcook,
  49.                        La_i86_regs *__regs,
  50.                        unsigned int *__flags,
  51.                        const char *__symname,
  52.                        long int *__framesizep);
  53. extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
  54.                     uintptr_t *__refcook,
  55.                     uintptr_t *__defcook,
  56.                     const La_i86_regs *__inregs,
  57.                     La_i86_retval *__outregs,
  58.                     const char *symname);
  59.  
  60. __END_DECLS
  61.